#!/usr/bin/env python
# -*- coding: utf-8 -*-
# Time       :   17:08
# Author     : Y4
# Site       : 
# File       : 07 函数-闭包.py
# Software   : PyCharm
'''
定义 ： 内部函数 - 有返回值 就形成闭包
    外部函数定义内部函数  -  定义内部函数
    外部函数有返回值      - return 内部函数方法名


def 外部函数():
    ...
    def 内部函数():
        ...
    return 内部函数


作用 ：
    1. 多次调用函数，不会影响返回的出来的数据
    2. 变量不会被垃圾回收,所以有一定的内存占用问题
    3. 闭包是装饰器的基础

'''


def out(a, b):
    c = 10

    def inner():
        return a + b + c
    return inner


value = out(10, 10)
print(value())


value1 = out(100,100)
print(value1())
